<?php if ( ! defined("BASEPATH")) exit("No direct script access allowed");

class Produtos_model extends CI_Model {
		
	public function do_insert($dados=NULL, $redir=TRUE){
		if ($dados != NULL):
			$this->db->insert('produtos', $dados);
			return $this->db->insert_id();
		endif;
	}
	
	public function do_insert_produtoindisponivel($dados=NULL){
		if ($dados != NULL):
			$this->db->insert('email_produtoindisponivel', $dados);
		endif;
	}
	
	public function do_update($dados=NULL, $condicao=NULL, $redir=TRUE){
		if ($dados != NULL && is_array($condicao)):
			$this->db->update('produtos', $dados, $condicao);
			if ($this->db->affected_rows()>0):
				auditoria('Alteração de produtos', 'O produto com o id "'.$condicao['id'].'" foi alterado');
			endif;
		endif;
	}
	
	public function do_delete($condicao=NULL, $redir=TRUE){
		if ($condicao != NULL && is_array($condicao)):
			$this->db->delete('produtos', $condicao);
			if ($redir) redirect(current_url());
		endif;
	}
	
	public function get_all($ativo = FALSE ,$qtde = 0, $inicio = 0){
		if($qtde > 0):
			$this->db->limit($qtde, $inicio);
		endif;
		if($ativo == TRUE):
			$this->db->where('ativo', '1');
		endif;
		$this->db->order_by('id', 'desc');
		return $this->db->get('produtos');
	}
	
	public function get_all_estoque($ativo = FALSE ,$qtde = 0, $inicio = 0){
		if($qtde > 0):
			$this->db->limit($qtde, $inicio);
		endif;
		if($ativo == TRUE):
			$this->db->where('ativo', '1');
		endif;
		$this->db->where('quantidade >', '0');
		$this->db->order_by('id', 'desc');
		return $this->db->get('produtos');
	}

	public function get_byid($id=NULL, $campo = 'id', $ativo = FALSE, $qtde = 0, $inicio = 0){
		if($qtde > 0):
			$this->db->limit($qtde, $inicio);
		endif;
		if($ativo == TRUE):
			$this->db->where('ativo', '1');
		endif;
		if ($id != NULL):
			$this->db->where($campo, $id);
			return $this->db->get('produtos');
		else:
			return FALSE;
		endif;
	}
	
	public function get_by_nome($nome){
		$this->db->where('nome', $nome);
		$this->db->order_by('posicao', 'DESC');
		$this->db->limit(1);
		return $this->db->get('produtos');
	}
	
	public function get_by_categoria_id($categoria_id){
		$this->db->where('categoria_id', $categoria_id);
		$this->db->order_by('posicao', 'DESC');
		//$this->db->limit(1);
		return $this->db->get('produtos');	
	}
	
	public function get_byslug($id, $slug){
		$this->db->select('id, slug');
		$this->db->where('slug', $slug);
		$this->db->where('id !=', $id);
		return $this->db->get('produtos');
	}
	
	public function get_bybusca($pesquisa, $qtde = 0, $inicio = 0){
		if($qtde > 0):
			$this->db->limit($qtde, $inicio);
		endif;
		$this->db->order_by('id', 'desc');
		$this->db->like('nome', $pesquisa, 'both');
		$this->db->where('ativo', '1');
		return $this->db->get('produtos');
	}

	public function get_listar($lista = 'id', $order = 'desc'){
		return $this->db->select('*')
                        ->from('produtos')
						->order_by($lista, $order)
                        ->get()->result();
		
	}
	
	public function get_byid_ordenacao($id=NULL, $campoOrdenacao = 'nome', $tipoOrdenacao = 'desc'){
		if ($id != NULL):
			$this->db->where('id', $id);
			$this->db->order_by('id', 'desc');
			return $this->db->get('produtos');
		else:
			return FALSE;
		endif;
	}
	
	public function do_insert_atributos($dados=NULL, $redir=TRUE){
		if ($dados != NULL):
			$this->db->insert('produtos_atributos', $dados);
		endif;
	}

	public function do_insert_item($dados=NULL, $redir=TRUE){
		if ($dados != NULL):
			$this->db->insert('produtos_pedidos_item', $dados);
		endif;
	}
	
	public function get_byid_pedidos_item($id=NULL, $campo = 'id'){
		if ($id != NULL):
			$this->db->where($campo, $id);
			return $this->db->get('produtos_pedidos_item');
		else:
			return FALSE;
		endif;
	}

	public function do_delete_atributo($condicao=NULL, $redir=TRUE){
		if ($condicao != NULL && is_array($condicao)):
			$this->db->delete('produtos_atributos', $condicao);
		endif;
	}
	
	public function get_byid_atributo($id=NULL, $campo = 'id'){
		if ($id != NULL):
			$this->db->where($campo, $id);
			$this->db->limit(1);
			return $this->db->get('produtos_atributos');
		else:
			return FALSE;
		endif;
	}
	
	public function get_byid_atributo_condicional($id_atributo=NULL){
		if ($id_atributo != NULL):
			$this->db->where('id_atributo', $id_atributo);
			$this->db->order_by('id', 'random');
			return $this->db->get('produtos_atributos');
		else:
			return FALSE;
		endif;
	}

	public function get_byid_produto_atributo($id=NULL, $id2=NULL){
		if ($id != NULL && $id2 != NULL):
			$this->db->where('id_produto', $id);
			$this->db->where('id_atributo', $id2);
			$this->db->limit(1);
			return $this->db->get('produtos_atributos');
		else:
			return FALSE;
		endif;
	}
	
	public function do_upload($campo){
		$config['upload_path'] = base_url('uploads/webcam/');
		$config['allowed_types'] = 'gif|jpg|png';
		$this->load->library('upload', $config);
		if ($this->upload->do_upload($campo)):
			return $this->upload->data();
		else:
			return $this->upload->display_errors();
		endif;
	}	
}

/* End of file produto_model.php */
/* Location: ./application/models/produto_model.php */